home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
progtool
/
modula2
/
module
/
brain.mod
< prev
next >
Wrap
Text File
|
1995-11-25
|
4KB
|
107 lines
MODULE BRAIN;
(* Version*: 20.12.89 04:35*)
FROM EasyDialog IMPORT and;
FROM MenuEvnt IMPORT MINDMENU,MenueEreignis;
FROM Liste IMPORT KillList;
FROM MBIO IMPORT MBList;
FROM SYSTEM IMPORT ADR,ADDRESS,VAL,SHIFT;
FROM KbdEvnt IMPORT MenuSearch;
FROM AES IMPORT ApplInitialise,ApplExit,ResourceLoad,ResourceGetAddr,MenuBar,
GrafMouse,EventMultiple,ResourceFree,GrafHandle,FormDialogue;
FROM GEMAESbase IMPORT Arrow,HourGlass,FormStart,FormFinish,
MesageEvent,TimerEvent,KeyboardEvent;
FROM GEMVDIBase IMPORT VDIWorkInType,VDIWorkOutType;
FROM VDIControls IMPORT OpenVirtualWorkstation,CloseVirtualWorkstation;
VAR ENDE : BOOLEAN;
menueadresse,MouseAdresse : ADDRESS;
id,handle,j,MaxX,MaxY : INTEGER;
RSCfileName : ARRAY[1..12] OF CHAR;
OK : BOOLEAN;
taste : CHAR;
WorkIn : VDIWorkInType;
WorkOut : VDIWorkOutType;
WC,HC,WB,HB : INTEGER;
PROCEDURE Auswahl;
VAR
mBuf :ARRAY [0..7] OF INTEGER;
formret,msgret : INTEGER;
events,flag,mx,my,mbutton,mstate,scancode,mclicks:INTEGER;
String : ARRAY [1..120] OF CHAR;
BEGIN
flag :=MesageEvent+TimerEvent+KeyboardEvent;
REPEAT
ENDE := FALSE;
events:=EventMultiple(flag,0,0,0,0,0,0,0,0,0,0,0,0,0,
ADR(mBuf),10000,0,(* Timer Event*)
mx,my,
mbutton,mstate,scancode,mclicks);
IF and(events,MesageEvent)THEN
msgret :=mBuf[4];
ENDE := MenueEreignis(msgret,menueadresse);
END(*IF*);
IF and(events,TimerEvent) THEN
(**********************************************************************************************************)
(*String :='[0][ TimerEvent | Nur zum Test!!!!! | Christian Ledermann| ver 0.0 vom 25.02.93 ][ OK ]';*)
(*formret:=FormAlert(1,String); *)
(**********************************************************************************************************)
END(*IF*);
IF and(events,KeyboardEvent) THEN
IF ~MenuSearch(id,menueadresse,mstate,scancode,taste) THEN
(* Eigene Tastaturabfrage*)
IF taste=33C THEN (* ESC-Taste gedrückt!*)
(* Sehr praktisch wenn man mit dem Debugger arbeitet *)
(* Im Normalfall erscheint wenn man den Debugger verlässt *)
(* das Menü des M2Loaders. Nach einem Druck auf die ESC-Taste *)
(* ist nun das eigene Menü wieder da, ausserdem wird ein *)
(* Redraw für den ganzen Bildschirm erzwungen *)
(* Menü auschalten *)
MenuBar(menueadresse,0);
(* Hier wird ein Komplett Redraw erzwungen ! *)
FormDialogue(FormStart,0,0,0,0,0,0,MaxX,MaxY);
FormDialogue(FormFinish,0,0,0,0,0,0,MaxX,MaxY);
(* Menü wieder einschalten *)
MenuBar(menueadresse,1);
END(*IF*);
END(*IF*);
END(*IF*);
UNTIL ENDE
END Auswahl;
BEGIN
id := ApplInitialise();
RSCfileName :='BRAIN.rsc';
ResourceLoad(RSCfileName);
ResourceGetAddr(0,MINDMENU,menueadresse);
handle:=GrafHandle(WC,HC,WB,HB);
FOR j:= 0 TO 9 DO WorkIn[j]:=0 END(*FOR*);
WorkIn[10]:=2;
OpenVirtualWorkstation(WorkIn,handle,WorkOut);
MaxX:=WorkOut[0];
MaxY:=WorkOut[1];
MenuBar(menueadresse,1);
GrafMouse(Arrow,NIL);
Auswahl;
KillList(MBList);
CloseVirtualWorkstation(handle);
ResourceFree;
ApplExit;
END BRAIN.